home *** CD-ROM | disk | FTP | other *** search
/ Sprite 1984 - 1993 / Sprite 1984 - 1993.iso / src / kernel / sprite / kdiff < prev    next >
Encoding:
Text File  |  1990-06-29  |  1.8 KB  |  83 lines

  1. #!/sprite/cmds/perl
  2.  
  3. if ($#ARGV != 1) {
  4.     printf("$#ARGV\n");
  5.     printf("Usage: kdiff oldKernel newKernel\n");
  6.     exit;
  7. }
  8. if (! -e $ARGV[0]) {
  9.     die("File $ARGV[0] does not exist.\n");
  10. }
  11. if (! -e $ARGV[1]) {
  12.     die("File $ARGV[1] does not exist.\n");
  13. }
  14. open(fid, "strings $ARGV[0] |") || die ("Can't open pipe.\n");
  15. while (<fid>) {
  16.     if (/RCS/) {
  17.     ($d1,$file, $version) = split;
  18.     $versionArray{$file} = $version;
  19.     }
  20. }
  21.  
  22. open(fid, "strings $ARGV[1] |") || die ("Can't open pipe.\n");
  23. while (<fid>) {
  24.     if (/RCS/) {
  25.     ($d1, $file, $version) = split;
  26.     if (! defined($versionArray{$file})) {
  27.         $#newFiles++;
  28.         $newFiles[$#newFiles] = $file;
  29.     } elsif ($version != $versionArray{$file}) {
  30.         do PrintLog($file, $versionArray{$file}, $version);
  31.     }
  32.     $used{$file} = 1;
  33.     }
  34. }
  35. if ($#newFiles > 0) {
  36.     printf("\nThe following files were added to the new kernel:\n\n");
  37.     for ($i = 0; $i <= $#newFiles; $i++) {
  38.     printf("$newFiles[$i]\n");
  39.     }
  40. }
  41.  
  42. $headerPrinted = 0;
  43. while (($file, $version) = each(%versionArray)) {
  44.     if (! defined($used{$file})) {
  45.     if ($headerPrinted == 0) {
  46.         printf(
  47.     "\nThe following files were not used in the new kernel:\n\n");
  48.         $headerPrinted = 1;
  49.     }
  50.     printf("$file\n");
  51.     }
  52. }
  53.  
  54. sub PrintLog {
  55.     local($stream);
  56.     local($start) = 0;
  57.     $oldVersion = $_[1];
  58.     $newVersion = $_[2];
  59.     open($stream, "rlog $_[0] |") || die("Can't rlog $_[0]\n");
  60.     printf("******* $_[0]:\n");
  61.     while (<$stream>) {
  62.     ($f1, $f2) = split;
  63.     if (($f1 eq "revision") && ($f2 eq $newVersion)) {
  64.         $start = 1;
  65.     } elsif ($f2 eq $oldVersion) {
  66.         if ($start == 0) {
  67.         printf("New version %s appears older than old version %s\n",
  68.             $newVersion, $oldVersion);
  69.         printf("Were the kernel arguments in the correct order?\n");
  70.         }
  71.         last;
  72.     }
  73.     if ($start) {
  74.         print;
  75.     }
  76.     }
  77.     print("\n");
  78. }
  79.  
  80.  
  81.  
  82.  
  83.